package com.zx.ishopping.services;

import com.zx.ishopping.DTO.*;

import com.zx.ishopping.VO.LoginVo;
import com.zx.ishopping.VO.UserVo;
import com.zx.ishopping.results.PageResult;
import com.zx.ishopping.results.Result;


public interface UserService {
    /**
     * 登陆服务
     */
    LoginVo login(UserLoginDTO userLoginDto);

    /**
     * 管理员添加用户
     */
    void register(UserInfoDTO userInfoDTO);

    /**
     * 员工分页查询
     * @return
     */
    PageResult pageQuery(UserPageQueryDTO userPageQueryDTO);

    /**
     * 更新用户信息
     * @param userInfoDTO
     */
    void update(UserInfoDTO userInfoDTO);

    /**
     * 根据id查询用户
     *
     * @param id
     * @return
     */
    UserVo getUserById(Long id);

    /**
     * 删除用户
     *
     * @param id
     */
    void deleteUser(long id);


    /**
     * 发送验证码
     * @param email
     */
    void sendAndStoreCaptcha(String email);

    /**
     * 用户注册
     * @param userRegisterDTO
     */
    void UserRegister(UserRegisterDTO userRegisterDTO);

    /**
     * 验证码校验
     * @param inputCode
     * @return
     */
    Boolean validateCaptcha(String inputCode,String  email);

    /**
     * 忘记密码
     * @param userChangePasswordDTO
     */
    void forgetPassword(UserChangePasswordDTO userChangePasswordDTO);

    /**
     * 用户主动修改密码
     */
    void changePassword(UserChangePasswordDTO userChangePasswordDTO);

    /**
     * 用户修改信息
     * @param userInfoDTO
     */
    void updateUserInfo(UserInfoDTO userInfoDTO);
}
